// 导入数据库的模块
const db=require('../db/index')
// 导入密码的校检
const bcrypt=require('bcryptjs')

// 定义SQL的查询语句
const sql='select id,username,nickname,email,user_pic from ev_users where id=?'
// 获取用户信息处理函数
exports.getUserInfo=(req,res)=>{
    // 获取请求头中的数据
    const userinfo=req.auth
// 执行数据库语句
db.query(sql,userinfo.id,(err,results)=>{
    if(err) return res.cc(err)
    if(results.length!==1)return res.cc('获取用户信息失败')
    // 成功获取,将信息返回给客户端
    res.send({
        status:0,
        message:'获取用户信息成功',
        data:results[0]
    })
})
}

// 定义更新用户的SQL语句
const updatesql='update ev_users set? where id=?'
// 更新用户处理函数
exports.updateUserInfo=(req,res)=>{
        // 更新语句
db.query(updatesql,[req.body,req.body.id],(err,results)=>{
    if(err) return res.cc(err)
    if(results.affectedRows!==1) return res.cc('更新失败！')
    // 更新成功
    return res.send({
        status:0,
        message:'更新用户信息成功'
    })
})
}

// 定义查询用户是否存在的sql语句
const searchsql=`select * from ev_users where id=?`
// 定义更新密码的SQL语句
const resetsql=`update ev_users set  password=? where id=?`
// 重置密码的处理函数
exports.updatePassword = (req, res) => {
    db.query(searchsql,req.auth.id,(err,results)=>{
            if(err) return res.cc(err)
            if(results.length!==1) return res.cc('该用户不存在')
            // 用户存在，判断提交的原密码是否一致
            const comparepwd=bcrypt.compareSync(req.body.oldPwd,results[0].password)
            if(!comparepwd) return res.cc('原密码错误')
            // 对新密码进行加密后存储到数据库中
            const newPwd=bcrypt.hashSync(req.body.newPwd,10)
            // 执行db操作
            db.query(resetsql,[newPwd,req.auth.id],(err,results)=>{
              if(err) return res.cc(err)
              if(results.affectedRows!==1) return res.cc('更新密码失败')
            // 重置密码成功
              return res.cc('更新密码成功,ok',0)
            })
    })
  }

// 定义更新头像的SQL语句
const updateheadersql=`update ev_users set user_pic=? where id=? `
// 更新用户头像的处理函数
exports.updateAvatar=(req,res)=>{
    // 执行sql语句
    db.query(updateheadersql,[req.body.user_pic,req.auth.id],(err,results)=>{
        if(err) return res.cc(err)
        if(results.affectedRows!==1) return res.cc('更新用户头像失败')
        // 更新用户头像成功
        return res.cc('更新头像成功,ok',0)
    })
}